package com.example.doubledatasource.vo;

import lombok.Data;
import lombok.Builder;

/**
 * 用户值对象
 * 用于返回给前端的用户展示数据
 * 
 * @author example
 * @since 1.0.0
 */
@Data
@Builder
public class UserVO {

    private Long id;
    
    private String username;
    
    private String email;
    
    private String phone;
    
    /**
     * 格式化后的创建时间
     */
    private String createTimeStr;
    
    /**
     * 格式化后的更新时间
     */
    private String updateTimeStr;
    
    /**
     * 获取显示名称
     */
    public String getDisplayName() {
        if (email != null && !email.isEmpty()) {
            return username + " (" + email + ")";
        }
        return username;
    }
    
    /**
     * 获取脱敏手机号
     */
    public String getMaskedPhone() {
        if (phone != null && phone.length() == 11) {
            return phone.substring(0, 3) + "****" + phone.substring(7);
        }
        return phone;
    }
}
